package com.webService;

/**
 * 服务器端的ServerSocket类
 * Created by IntelliJ IDEA.
 * User: zzx
 * Date: 2017/11/13
 * Time: 上午7:15
 */

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 基于TCP协议的Socket通信，实现用户登录，服务端
 */
public class MyServerSocket {
    public static void main(String[] args) throws IOException {

        //1、创建一个服务器端Socket，即ServerSocket，指定绑定的端口，并监听此端口
        //第1个参数1024-65535的某个端口，参数2为设置连接请求队列的长度（没有设置或小于等于0或大于系统请允许值时，使用系统值）
        ServerSocket serverSocket = new ServerSocket(10086, 0);

        //2、调用accept()方法开始监听，等待客户端的连接
        Socket socket = serverSocket.accept();

        //3、获取输入流，并读取客户端信息
        InputStream is = socket.getInputStream();
        // 处理输入流
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        String info = null;
        while ((info = br.readLine()) != null) {
            System.out.println("我是服务器，客户端说：" + info);
        }
        socket.shutdownInput();//关闭输入流

        //4、获取输出流，响应客户端的请求
        OutputStream os = socket.getOutputStream();
        PrintWriter pw = new PrintWriter(os);
        pw.write("欢迎您！");
        pw.flush();

        //5、关闭资源
        pw.close();
        os.close();
        br.close();
        isr.close();
        is.close();
        socket.close();
        serverSocket.close();
    }
}
